/**
 * 应用的公共常量和方法
 * 不需要额外使用layui.use()加载，加载index模块时已经随同加载
 * @author heguanghua
 * @since 2019/10/12 21:36
 */
layui.define(function (exports) {
    let layer = layui.layer;
    let $ = layui.$;

    // 可以在此定义应用内的全局公共常量和方法
    //  ZMN_ENV = "http://local-"
    let zmnApp = {
        DISABLE_READ_MSG: true, // 读取系统消息
        SYS_BASE_URL: ZMN_ENV + "mcc.xiujiadian.com",
        // SYS_BASE_URL: "https://mcc.xiujiadian.com",
        // SYS_BASE_URL: "http://local-mcc.xiujiadian.com:12013",
        SYS_ENGINEER_BASE_URL: ZMN_ENV + "engineer.xiujiadian.com",

        /**
         * 描述: ajax 提交
         *
         * @since  2019/12/6
         **/
        jsonAjax: function (url, data, callback) {
            let index;
            $.ajax({
                async: false,
                type: "POST",
                url: url,
                contentType: "application/json",
                dataType: "json",
                data: data,
                beforeSend: function () {
                    index = layer.load(1, {
                        shade: [0.5, '#DBDBDB'],
                        content: '请稍等...',
                        success: function (layero) {
                            layero.find('.layui-layer-content').css({
                                'padding-top': '40px',//图标与样式会重合，这样设置可以错开
                                'width': '200px',//文字显示的宽度
                                'padding-left': '0px'
                            });
                        }
                    });
                },
                success: function (json) {
                    if (callback) {
                        layer.close(index);
                        callback(json);
                    }
                }
            });
        },
    }

    //公共业务的逻辑处理可以写在此处，切换任何页面都会执行
    //……

    //对外暴露的接口
    exports('zmnApp', zmnApp);
});


var appUtil = {

    /**
     * 获取table选中的ids集合（lay-table中复选框选择）
     * @param obj toolbar触发的事件对象
     * @param comInputName 多字段名称组中的公共字段的表单元素名称
     * @param colNames 多字段名称组，不包含公共字段，非必须
     * @returns {any[]}
     */
    layTabldIds: function(obj, colNames, comInputName) {
        let comValue;
        if(zmnUtil.isNotEmptyNull(comInputName)) {
            comValue = $('input[name="' + comInputName + '"]').val();
        }
        let groups = new Array();
        let jdata = obj.config.data;
        for(let i = 0; i < jdata.length; i++) {
            let o = jdata[i];
            if(o['LAY_CHECKED']) {
                let group = new Array();
                if(zmnUtil.isNotEmptyNull(comValue)) {
                    group.push(comValue);
                }
                colNames.forEach(function (colName) {
                    group.push(o[colName]);
                });
                groups.push(group.join('_'));
            }
        }
        return groups;
    },

    /**
     * 从多个input中获取input的值，以最后一个input优先
     * @param selectors
     * @returns {number|jQuery}
     */
    findInputValue: function (selectors) {
        if(!zmnUtil.isArray(selectors)) {
            return 0;
        }
        let l = selectors.length;
        for(let i = l - 1; i >=0; i--) {
            let $this = $(selectors[i]);
            if($this.length > 0 && zmnUtil.isNotZeroInteger($this.val())) {
                return $this.val();
            }
        }
        return 0;
    },

    notNull: function (val) {
        if (val == undefined || val == "" || val == null) {
            return false;
        } else {
            return true;
        }
    },
    isNull: function (val) {
        return !appUtil.notNull(val);
    },

}
